package yasuoliu;

import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class demo2 {
    // 目的：把kl.txt文件压缩成kl.zip
    public static void main(String[] args) throws IOException {
        //1.创建一个被压缩的文件对象
        File src = new File("E:\\kl.txt");
        //2.创建一个压缩到目的地的文件对象
        File dest = new File("E:\\kl.zip");
        //3.调用方法,开始压缩单个文件
        unZip(src, dest);
    }

    private static void unZip(File src, File dest) throws IOException {
        //1.创建一个压缩文件对象 压缩流关联压缩
        ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(dest));
        //2.创建一个ZipEntry对象,表示压缩包中的文件和文件夹
        //参数：压缩包里面的路径
        ZipEntry entry = new ZipEntry(src.getName());//把src文件夹下的文本(kl.txt)放入压缩包中
        //此时的entry表示压缩包下的文件夹或者文件
        //3.把压缩包的下的文本放入目的地中
        zos.putNextEntry(entry);
        //4.把kl.txt（src文件中） 的内容读取出来，写入压缩流
        FileInputStream fis = new FileInputStream(src);//E:\kl.txt
        int b;
        while ((b = fis.read()) != -1) {
            zos.write(b);
        }

        fis.close();
        zos.closeEntry();
        zos.close();
    }

}
